【例子介绍】图解java设计模式
【相关图片】
【源码结构】
Java 设计模式
1.1 JAVA 设计模式内容介绍 1
1.1.1 先看几个经典的面试题 1
1.1.2 设计模式的重要性 3
1.2 课程亮点和授课方式 4
第 2 章 设计模式七大原则 6
2.1 设计模式的目的 6
2.2 设计模式七大原则 6
2.3 单一职责原则 7
2.3.1 基本介绍 7
2.3.2 应用实例 7
2.3.3 单一职责原则注意事项和细节 12
2.4 接口隔离原则(INTERFACE SEGREGATION PRINCIPLE) 12
2.4.1 基本介绍 12
2.4.2 应用实例 13
2.4.3 应传统方法的问题和使用接口隔离原则改进 16
2.5 依赖倒转原则 21
2.5.1 基本介绍 21
2.5.2 应用实例 21
2.5.3 依赖关系传递的三种方式和应用案例 24
2.5.4 依赖倒转原则的注意事项和细节 28
2.6 里氏替换原则 29
2.6.1 OO 中的继承性的思考和说明 29
2.6.2 基本介绍 29
2.6.3 一个程序引出的问题和思考 30
2.6.4 解决方法 31
2.7 开闭原则 34
2.7.1 基本介绍 34
2.7.2 看下面一段代码 35
2.7.3 方式 1 的优缺点 38
2.7.4 改进的思路分析 38
2.8 迪米特法则 42
2.8.1 基本介绍 42
2.8.2 应用实例 42
2.8.3 应用实例改进 46
2.8.4 迪米特法则注意事项和细节 51
2.9 合成复用原则(COMPOSITE REUSE PRINCIPLE) 51
2.9.1 基本介绍 51
第 3 章 UML 类图 53
3.1 UML 基本介绍 53
3.2 UML 图 54
3.3 UML 类图 55
3.4 类图—依赖关系(DEPENDENCE) 56
3.5 类图—泛化关系(GENERALIZATION) 57
3.6 类图—实现关系(IMPLEMENTATION) 58
3.7 类图—关联关系(ASSOCIATION) 59
3.8 类图—聚合关系(AGGREGATION) 59
3.8.1 基本介绍 59
3.8.2 应用实例 59
3.9 类图—组合关系(COMPOSITION) 60
3.9.1 基本介绍 60
3.9.2 应用案例 60
第 4 章 设计模式概述 63
4.1 掌握设计模式的层次 63
4.2 设计模式介绍 63
4.3 设计模式类型 63
第 5 章 单例设计模式 65
5.1 单例设计模式介绍 65
5.2 单例设计模式八种方式 65
5.3 饿汉式(静态常量) 65
5.4 饿汉式(静态代码块) 67
5.5 懒汉式(线程不安全) 69
5.6 懒汉式(线程安全,同步方法) 71
5.7 懒汉式(线程安全,同步代码块) 72
5.8 双重检查 73
5.9 静态内部类 75
5.10 枚举 77
5.11 单例模式在 JDK 应用的源码分析 78
5.11.1 单例模式在 JDK 应用的源码分析 78
5.12 单例模式注意事项和细节说明 79
第 6 章 工 厂 模式 80
6.1 简单工厂模式 80
6.1.1 看一个具体的需求 80
6.1.3 传统的方式的优缺点 82
6.1.4 基本介绍 82
6.1.5 使用简单工厂模式 83
6.2 工厂方法模式 89
6.2.1 看一个新的需求 89
6.2.2 思 路 1 89
6.2.3 思 路 2 89
6.2.4 工厂方法模式介绍 89
6.2.5 工厂方法模式应用案例 89
6.2 抽象工厂模式 94
6.3.1 基本介绍 94
6.3.2 抽象工厂模式应用实例 95
6.3 工厂模式在 JDK-CALENDAR 应用的源码分析 99
6.4 工厂模式小结 103
第 7 章 原 型 模式 104
7.1 克隆羊问题 104
7.2 传统方式解决克隆羊问题 104
7.3 传统的方式的优缺点 105
7.4 原型模式-基本介绍 105
7.5 原型模式原理结构图-UML 类图 106
7.6 原型模式解决克隆羊问题的应用实例 106
7.7 原型模式在 SPRING 框架中源码分析 110
7.8 深入讨论-浅拷贝和深拷贝 110
7.8.1 浅拷贝的介绍 110
7.8.2 深拷贝基本介绍 111
7.9 深拷贝应用实例 111
7.10 原型模式的注意事项和细节 116
第 8 章 建造者模式 118
8.1 盖房项目需求 118
8.2 传统方式解决盖房需求 118
8.3 传统方式的问题分析 120
8.4 建造者模式基本介绍 121
8.5 建造者模式的四个角色 121
8.6 建造者模式原理类图 121
8.7 建造者模式解决盖房需求应用实例 122
8.8 建造者模式在 JDK 的应用和源码分析 129
第 9 章 适配器设计模式 131
9.1 现实生活中的适配器例子 131
9.2 基本介绍 131
9.3 工作原理 131
9.4 类适配器模式 132
9.4.1 类适配器模式介绍 132
9.4.2 类适配器模式应用实例 132
9.4.3 类适配器模式注意事项和细节 135
9.5 对象适配器模式 135
9.5.1 对象适配器模式介绍 135
9.5.2 对象适配器模式应用实例 136
9.5.3 对象适配器模式注意事项和细节 140
9.6 接口适配器模式 140
9.6.1 接口适配器模式介绍 140
9.6.2 接口适配器模式应用实例 140
9.7 适配器模式在 SPRINGMVC 框架应用的源码剖析 144
9.8 适配器模式的注意事项和细节 146
第 10 章 桥 接 模式 147
10.1 手机操作问题 147
10.2 传统方案解决手机操作问题 147
10.3 传统方案解决手机操作问题分析 148
10.4 桥接模式(BRIDGE)-基本介绍 148
10.5 桥接模式(BRIDGE)-原理类图 148
10.6 桥接模式解决手机操作问题 149
10.7 桥接模式在 JDBC 的源码剖析 156
10.8 桥接模式的注意事项和细节 157
10.9 常见的应用场景 158
第 11 章 装饰者设计模式 159
11.1 星巴克咖啡订单项目(咖啡馆): 159
11.2 方案 1-解决星巴克咖啡订单项目 159
11.3 方案 1-解决星巴克咖啡订单问题分析 159
11.4 方案 2-解决星巴克咖啡订单(好点) 160
11.5 方案 2-解决星巴克咖啡订单问题分析 160
11.6 装饰者模式定义 161
11.7 装饰者模式原理 161
11.8 装饰者模式解决星巴克咖啡订单 162
11.9 装饰者模式下的订单:2 份巧克力 一份牛奶的 LONGBLACK 162
11.10 装饰者模式咖啡订单项目应用实例 162
11.11 装饰者模式在 JDK 应用的源码分析 170
第 12 章 组 合 模式 172
12.1 看一个学校院系展示需求 172
12.2 传统方案解决学校院系展示(类图) 172
12.3 传统方案解决学校院系展示存在的问题分析 172
12.4 组合模式基本介绍 173
12.5 组合模式原理类图 173
12.6 组合模式解决学校院系展示的 应用实例 174
12.7 组合模式在 JDK 集合的源码分析 183
12.8 组合模式的注意事项和细节 184
第 13 章 外 观 模式 185
13.1 影院管理项目 185
13.2 传统方式解决影院管理 185
13.3 传统方式解决影院管理问题分析 186
13.4 外观模式基本介绍 186
13.5 外观模式原理类图 186
13.6 外观模式解决影院管理 187
13.6.1 传统方式解决影院管理说明 187
13.6.2 外观模式应用实例 187
13.7 外观模式在 MYBATIS 框架应用的源码分析 197
13.8 外观模式的注意事项和细节 198
第 14 章 享 元 模式 199
14.1 展示网站项目需求 199
14.2 传统方案解决网站展现项目 199
14.3 传统方案解决网站展现项目-问题分析 199
14.4 享元模式基本介绍 200
14.5 享元模式的原理类图 200
14.6 内部状态和外部状态 201
14.7 享元模式解决网站展现项目 202
14.8 享元模式在 JDK-INTERGER 的应用源码分析 207
14.9 享元模式的注意事项和细节 209
第 15 章 代 理 模式 210
15.1 代理模式(PROXY) 210
15.1.1 代理模式的基本介绍 210
15.2.1 静态代码模式的基本介绍 210
15.2.2 应用实例 211
15.2.3 静态代理优缺点 214
15.3 动态代理 214
15.3.1 动态代理模式的基本介绍 214
15.3.2 JDK 中生成代理对象的 API 214
15.3.3 动态代理应用实例 214
15.4 CGLIB 代理 219
15.4.1 Cglib 代理模式的基本介绍 219
15.4.2 Cglib 代理模式实现步骤 220
15.4.3 Cglib 代理模式应用实例 220
15.5 几种常见的代理模式介绍— 几种变体 223
第 16 章 模板方法模式 225
16.1 豆浆制作问题 225
16.2 模板方法模式基本介绍 225
16.3 模板方法模式原理类图 225
16.3.1 模板方法模式的原理类图 225
16.4 模板方法模式解决豆浆制作问题 226
16.5 模板方法模式的钩子方法 230
16.6 模板方法模式在 SPRING 框架应用的源码分析 232
16.7 模板方法模式的注意事项和细节 233
第 17 章 命 令 模式 234
17.1 智能生活项目需求 234
17.2 命令模式基本介绍 234
17.3 命令模式的原理类图 235
17.4 命令模式解决智能生活项目 235
17.5 命令模式在 SPRING 框架 JDBCTEMPLATE 应用的源码分析 247
17.6 命令模式的注意事项和细节 248
第 18 章 访问者模式 249
18.1 测评系统的需求 249
18.2 传统方式的问题分析 249
18.3 访问者模式基本介绍 249
18.4 访问者模式的原理类图 250
18.5 访问者模式应用实例 251
18.6 访问者模式的注意事项和细节 258
19.1 看一个具体的需求 259
19.2 传统的设计方案(类图) 259
19.3 传统的方式的问题分析 259
19.4 迭代器模式基本介绍 259
19.5 迭代器模式的原理类图 260
19.6 迭代器模式应用实例 260
19.7 迭代器模式在 JDK-ARRAYLIST 集合应用的源码分析 272
19.8 迭代器模式的注意事项和细节 273
第 20 章 观察者模式 275
20.1 天气预报项目需求,具体要求如下: 275
20.2 天气预报设计方案 1-普通方案 275
20.2.1 WeatherData 类 275
20.3 观察者模式原理 280
20.4 观察者模式解决天气预报需求 280
20.4.1 类图说明 280
20.4.2 代码实现 281
20.4.3 观察者模式的好处 288
20.5 观察者模式在 JDK 应用的源码分析 288
第 21 章 中介者模式 290
21.1 智能家庭项目 290
21.2 传统方案解决智能家庭管理问题 290
21.3 传统的方式的问题分析 290
21.4 中介者模式基本介绍 291
21.5 中介者模式的原理类图 291
21.6 中介者模式应用实例-智能家庭管理 291
21.7 中介者模式的注意事项和细节 301
第 22 章 备忘录模式 302
22.1 游戏角色状态恢复问题 302
22.2 传统方案解决游戏角色恢复 302
22.3 传统的方式的问题分析 302
22.4 备忘录模式基本介绍 302
22.5 备忘录模式的原理类图 303
22.6 游戏角色恢复状态实例 308
22.7 备忘录模式的注意事项和细节 313
第 23 章 解释器模式 315
23.2 传统方案解决四则运算问题分析 315
23.3 解释器模式基本介绍 315
23.4 解释器模式的原理类图 316
23.5 解释器模式来实现四则 316
23.6 解释器模式在 SPRING 框架应用的源码剖析 325
23.7 解释器模式的注意事项和细节 326
第 24 章 状 态 模式 327
24.1 APP 抽奖活动问题 327
24.2 状态模式基本介绍 327
24.3 状态模式的原理类图 327
24.4 状态模式解决 APP 抽奖问 328
24.5 状态模式在实际项目-借贷平台 源码剖析 341
24.6 状态模式的注意事项和细节 354
第 25 章 策 略 模式 355
25.1 编写鸭子项目,具体要求如下 355
25.2 传统方案解决鸭子问题的分析和代码实现 355
25.3 传统的方式实现的问题分析和解决方案 359
25.4 策略模式基本介绍 359
25.5 策略模式的原理类图 359
25.6 策略模式解决鸭子问题 360
25.7 策略模式在 JDK-ARRAYS 应用的源码分析 368
25.8 策略模式的注意事项和细节 371
第 26 章 职责链模式 372
26.1 学校 OA 系统的采购审批项目:需求是 372
26.2 传统方案解决 OA 系统审批,传统的设计方案(类图) 372
26.3 传统方案解决 OA 系统审批问题分析 372
26.4 职责链模式基本介绍 373
26.5 职责链模式的原理类图 373
26.6 职责链模式解决 OA 系统采购审批 373
26.7 职责链模式在 SPRINGMVC 框架应用的源码分析 381
26.8 职责链模式的注意事项和细节 383
评论